// utils/payService.js
const PAY_API = 'https://api.yourdomain.com/wxpay'

class PayService {
  /**
   * 统一下单
   * @param {Object} params 
   * @returns Promise
   */
  static async unifiedOrder(params) {
    try {
      const res = await wx.request({
        url: `${PAY_API}/unifiedorder`,
        method: 'POST',
        data: {
          ...params,
          appid: getApp().globalData.appId,
          mch_id: '你的商户号'
        }
      })
      return this._validateResponse(res)
    } catch (err) {
      throw new Error(`支付请求失败: ${err.message}`)
    }
  }

  static _validateResponse(res) {
    if (res.statusCode !== 200) {
      throw new Error('网络请求异常')
    }
    if (res.data.return_code !== 'SUCCESS') {
      throw new Error(res.data.return_msg || '支付业务异常')
    }
    return res.data
  }
}

export default PayService